define(function () {

    var self;

    var fhps = app.Module.extend({
        init: function () {
            self = this;
            self.data = {
                list: [],
                currentData: {
                    selectList: [],
                    company: "",//承运公司
                    tradeNo: "",//物流单号
                    orderNo: "",//订单单号
                    productNo: "",//产品单号
                    seqNo: "",//序列号
                    count: 1,//相同品名的运输数量统计  默认1
                    productName: "",//品名
                    spec: "",//规格
                    customerName: "",//客户名称
                    isEdit: false,//是否有修改操作
                    editIndex: '',//当前修改的是第几页的数据 默认''
                    checkRepeat: false,//是否已校验重复
                    GWCS010: "",
                    GWCS002: "",
                    GWCSMLEGAL: '',
                    GWCS014: "",//业务员
                    GWCS015: "",//业务员手机
                    exportNo:"",//出货单号
                },
                sub: []
            };

            self._super({
                _refreshAutoInit: true,
                _sliderId: 'slider', // tabs
            }, win);
        },
        makeSubData: function () {

            self.data.list.forEach(function (item, index) {

                self.data.sub.push({
                    productNo: item.productNo,//产品单号
                    orderNo: item.orderNo,//订单单号
                    count: item.count,//该单所属品类的最大运输量
                    GWCUSEQ: '',
                    GWCU001: item.productNo,//产品单号
                    GWCU002: item.seqNo,//序列号
                    GWCU003: '',//销售单位
                    GWCU004: 1,//运输数量
                    GWCU005: item.company,//承运公司
                    GWCU030: item.orderNo,//订单单号
                    GWCU031: item.count,//订单单号项序
                    GWCU104: item.tradeNo,//物流单号
                    productName: item.productName,
                    spec: item.spec,
                    GWCS010: item.GWCS010,//客户编号
                    GWCS002: item.GWCS002,//销售单位
                    GWCSMLEGAL: item.GWCSMLEGAL,//设备销售方->mmra017
                    GWCS014: item.GWCS014,//业务员
                    GWCS015: item.GWCS015, //业务员手机
                    exportNo:item.exportNo,//出货单号
                });
            })

        },
        calcuTradeNum: function () {
            var orderString = "";
            for (var i = 0; i < self.data.list.length; i++) {
                orderString = orderString + (self.data.list[i].orderNo + "&&" + self.data.list[i].productNo + ",");
            }

            for (var i = 0; i < self.data.list.length; i++) {
                var tradeNum = 1;//当前品号的运输量统计
                tradeNum = orderString.split(self.data.list[i].orderNo + "&&" + self.data.list[i].productNo).length - 1;
                self.data.list[i].count = tradeNum;
            }
        },
        doEditOrAdd: function () {
            var currentData = self.data.currentData;
            var editIndex = currentData.editIndex;
            var isEdit = currentData.isEdit;
            if (!isEdit) {
                self.data.list.forEach(function (item, index) {
                    if (item.orderNo == currentData.orderNo)
                        currentData.exportNo = item.exportNo;
                })
                self.data.list.push(currentData);
            } else if (isEdit) {
                self.data.list.removei(editIndex);
                self.data.list.push(currentData);
            }

            self.data.currentData = {
                selectList: currentData.selectList,
                company: currentData.company,//承运公司
                tradeNo: currentData.tradeNo,//物流单号
                orderNo: currentData.orderNo,//订单单号
                productNo: "",//产品单号
                seqNo: "",//序列号
                count: 1,//相同品名的运输数量统计  默认1
                productName: "",//品名
                spec: "",//规格
                customerName: "",//客户名称
                isEdit: false,//是否有修改操作
                editIndex: '',//当前修改的是第几页的数据 默认''
                GWCS010: "",
                GWCS002: "",
                GWCS014: "",//业务员
                GWCS015: "", //业务员手机
                exportNo:"",//出货单号
            }
        },
        checkAndDone: function (tradeNum) {
            var currentData = self.data.currentData;
            //获取订单数量
            app.ajax({
                xurl: "api/wx/fhps/check",
                xdata: {
                    orderNo: currentData.orderNo,
                    productNo: currentData.productNo,
                    seqNo: currentData.seqNo
                },
                cb: function (result) {
                    if (result.ok) {
                        var data = result.data.data;
                        if (!data.OrderNoIsInOrder) {
                            app.toast("订单单号无效!");
                            currentData.orderNo=currentData.orderNo+'/'+currentData.exportNo;
                            return false;
                        }

                        if (!data.ProductNoIsInOrder) {
                            app.toast("订单中产品品号不存在!");
                            currentData.orderNo=currentData.orderNo+'/'+currentData.exportNo;
                            return false;
                        }

                        if (!data.ProductNoIsInKC) {
                            app.toast("料件中产品品号不存在!");
                            currentData.orderNo=currentData.orderNo+'/'+currentData.exportNo;
                            return false;
                        }

                        if (data.ValidateProductInMmra) {
                            app.toast("在客户已购设备中已存在，不得重复配送!");
                            currentData.orderNo=currentData.orderNo+'/'+currentData.exportNo;
                            return false;
                        }

                        var isEdit = currentData.isEdit;

                        if (isEdit)
                            tradeNum = tradeNum - 1;//编辑状态 运输数量

                        //订单数量a-已运输数量b
                        var num = (data.total == null ? 0 : data.total) - (data.already == null ? 0 : data.already);
                        if (tradeNum >= num) {
                            app.toast("运输数量已超订单数量!");
                            currentData.orderNo=currentData.orderNo+'/'+currentData.exportNo;
                            return false;
                        }

                        currentData.productName = data.productName;
                        currentData.spec = data.spec;
                        currentData.customerName = data.customerName;
                        currentData.count = tradeNum + 1;//添加或新增 运输数量+1
                        currentData.GWCS010 = data.GWCS010;//客户编号
                        currentData.GWCS002 = data.GWCS002;//销售单位
                        currentData.GWCSMLEGAL = data.GWCSMLEGAL;//设备销售方
                        currentData.GWCS014 = data.GWCS014;//业务员
                        currentData.GWCS015 = data.GWCS015;//业务员手机
                        self.doEditOrAdd();
                    }
                }
            });
        },
        checkNull: function () {
            var current = self.data.currentData;
            if (current.company == "") {
                app.toast("请 选择/手录 承运公司");
                return false;
            }

            if (current.tradeNo == "") {
                app.toast("请 扫码/手录 物流单号");
                return false;
            }

            if (current.orderNo == "") {
                app.toast("请 扫码/手录 订单单号");
                return false;
            }

            if (current.productNo == "") {
                app.toast("请 扫码/手录 产品品号");
                return false;
            }

            if (current.seqNo == "") {
                app.toast("请 扫码/手录 序列号");
                return false;
            }

        },
        getCompany: function () {
            app.ajax({
                xurl: "api/wx/fhps/getCompany",
                cb: function (result) {
                    if (result.ok) {
                        self.data.currentData.selectList = result.data.data;
                    }
                }
            });
        },
        _ready:function(){

            self.getCompany();

            new Vue({
                el: doc.getElementById("content"),
                data: self.data,
                methods: {
                    edit: function (index) {
                        //复制一个新对象给目标  绑定区域的数据就都是独立的
                        // 如果不Clone 对象之间的传递是双向的 两个绑定区域都是使用的同一个对象
                        self.data.currentData = app.cloneJSON(self.data.list[index]);
                        self.data.currentData.editIndex = index;
                        self.data.currentData.isEdit = true;
                        self.data.currentData.orderNo=(self.data.currentData.orderNo+"/"+(self.data.currentData.exportNo==undefined?"":self.data.currentData.exportNo));
                    },
                    scanQRCode: function (type) {
                        app.scanQRCode(function (result) {
                            if (type == '1') {
                                self.data.currentData.tradeNo = result;
                            }
                            if (type == '2') {
                                self.data.currentData.orderNo = result;
                            }
                            if (type == '3') {
                                self.data.currentData.productNo = result;
                            }
                            if (type == '4') {
                                self.data.currentData.seqNo = result;
                            }

                        });
                    },
                    deleteItem: function (index) {
                        mui.confirm('确认删除该条记录？', '提示', ['确认', '取消'], function (e) {
                            if (e.index == 0) {
                                self.data.list.removei(index);
                            }
                        });
                    }
                }
            });

            app.taps.call(win, [
                {
                    o: 'saveDiv',
                    cb: function () {
                        var isnull = self.checkNull();

                        if (isnull != false) {
                            //客户目前提供的二维码分2段，中间用“/”分隔，“/”前的存入订单号字段，“/”后的存入出货单号字段
                            var order = self.data.currentData.orderNo.split("/");
                            self.data.currentData.orderNo=order[0];
                            self.data.currentData.exportNo=(order[1]==undefined?"":order[1]);
                            var orderString = "";// 格式为 订单号A&&品号A,订单号B&&品号B,...
                            //判断是否是编辑状态
                            if (self.data.currentData.isEdit) {
                                var listCopy = app.cloneJSON(self.data.list);
                                listCopy[self.data.currentData.editIndex] = self.data.currentData;
                                for (var i = 0; i < listCopy.length; i++) {
                                    // productNoString = productNoString + (listCopy[i].productNo+",");
                                    orderString = orderString + (listCopy[i].orderNo + "&&" + listCopy[i].productNo + ",");
                                }
                            } else {
                                for (var i = 0; i < self.data.list.length; i++) {
                                    // productNoString = productNoString + (self.data.list[i].productNo+",");
                                    orderString = orderString + (self.data.list[i].orderNo + "&&" + self.data.list[i].productNo + ",");
                                }
                            }
                            var tradeNum = orderString.split(self.data.currentData.orderNo + "&&" + self.data.currentData.productNo).length - 1;
                            self.checkAndDone(tradeNum);
                        }
                    }
                },
                {
                    o: 'submitDiv',
                    cb: function () {
                        if (self.data.list.length == 0)
                            return false;

                        self.calcuTradeNum();
                        self.makeSubData();

                        app.ajax({
                            xurl: "api/wx/fhps/save",
                            xdata: {
                                list: JSON.stringify(self.data.sub)
                            },
                            cb: function (result) {
                                if (result.ok) {
                                    app.toast("提交成功!");

                                } else
                                    app.toast(result.data.message);

                                self.data.list.removeAll();
                                self.data.sub.removeAll();
                                self.data.currentData = {
                                    selectList: result.ok ? result.data.selectList : self.data.currentData.selectList,
                                    company: "",//承运公司
                                    tradeNo: "",//物流单号
                                    orderNo: "",//订单单号
                                    productNo: "",//产品单号
                                    seqNo: "",//序列号
                                    count: 1,//相同品名的运输数量统计  默认1
                                    productName: "",//品名
                                    spec: "",//规格
                                    customerName: "",//客户名称
                                    isEdit: false,//是否有修改操作
                                    editIndex: '',//当前修改的是第几页的数据 默认''
                                    checkRepeat: false,//是否已校验重复
                                    GWCS010: "",
                                    GWCS002: "",
                                    GWCSMLEGAL: '',
                                    GWCS014: "",//业务员
                                    GWCS015: "" //业务员手机
                                };

                            }
                        })

                    }
                },
                {
                    o: 'showCompany',
                    cb: function () {

                        app.openPage({
                            src: "common/selectPage.html",
                            args: {
                                props:['GWCU005'],
                                call:false,
                                data:self.data.currentData.selectList,
                                cb: function (res) {
                                    self.data.currentData.company = res.NAME;
                                },
                            }
                        });
                    }
                }
            ]);
        },
        _lazy: function () {

            mui('.mui-scroll-wrapper').scroll({
                deceleration: 0.0005
            });
        }

    });

    return new fhps();
});